package boddaert.philippe.cashGame.site.deuxfoismoincher;

import java.util.List;

import org.apache.log4j.Logger;

import au.id.jericho.lib.html.Element;
import boddaert.philippe.cashGame.GameConfiguration;
import boddaert.philippe.cashGame.GameConfigurationCurrencyType;

public class WebGameParser extends
		boddaert.philippe.cashGame.parser.game.WebGameParser {

	private final static Logger logger = Logger.getLogger(WebGameParser.class);

	@Override
	protected int parseSecondHandAvailable(Element element) {
		List<Element> lien = element.findAllElements("p");
		for (Element span : lien) {
			if ("pdt_neufocas".equals(span.getAttributeValue("class"))) {
				logger.info("parse the number of second hand : "
						+ span.getContent().toString());
				String[] split = span.getContent().toString().split(" ");
				if ("d'occasion".equals(split[4]))
					return Integer.parseInt(split[3]);
			}

		}

		return -1;
	}

	@Override
	protected int parseNewAvailable(Element element) {
		List<Element> lien = element.findAllElements("p");
		for (Element span : lien) {
			if ("pdt_neufocas".equals(span.getAttributeValue("class"))) {
				String[] split = span.getContent().toString().split(" ");
				logger.info("parse the number of new : "
						+ span.getContent().toString());
				if ("Neufs".equals(split[1]))
					return Integer.parseInt(split[0]);
			}

		}

		return -1;
	}

	@Override
	protected double parseBestPrice(Element element) {
		List<Element> lien = element.findAllElements("p");
		for (Element span : lien) {
			if ("pdt_prix".equals(span.getAttributeValue("class"))) {
				logger.info("parse the best price : "
						+ span.getContent().toString().trim());
				return Double.parseDouble(span.getContent().toString().trim()
						.replace("<strong>", "").replace("</strong>", "")
						.split(" ")[0].replace("&euro;", "."));
			}
		}

		return -1;
	}

	@Override
	protected String parseTitle(Element element) {
		List<Element> lien = element.findAllElements("p");
		for (Element span : lien) {
			if ("pdt_nom".equals(span.getAttributeValue("class"))) {
				logger.info("parse the game title : "
						+ span.getContent().toString().trim());
				return ((Element) element.findAllElements("a").get(1))
						.getContent().toString();
			}
		}

		return null;
	}

	@Override
	protected String parseUrl(Element element) {
		List<Element> lien = element.findAllElements("p");
		for (Element span : lien) {
			if ("pdt_nom".equals(span.getAttributeValue("class"))) {
				logger.info("parse the game url : "
						+ span.getContent().toString().trim());
				return "http://www.2xmoinscher.com" + ((Element) element.findAllElements("a").get(1))
						.getAttributeValue("href");
			}
		}

		return null;
	}

	@Override
	protected GameConfiguration getNewGameConfiguration() {
		return new GameConfiguration(DeuxFoisMoinsCherPointCom.NAME,
				GameConfigurationCurrencyType.EURO);
	}
}
